package com.zmn.brs.persistence.interfaces.rule.engineer;

import com.zmn.brs.model.bo.rule.CustomRuleBO;
import com.zmn.brs.model.query.rule.EngineerRuleCustomQuery;
import com.zmn.brs.persistence.interfaces.rule.AlarmRuleDao;

import java.util.List;

/**
 * 描述: 工程师监控规则数据库访问
 *
 * @author chongw
 * @since 2021-7-5 09:55:07
 **/
public interface EngineerRuleDao extends AlarmRuleDao {

    /**
     * 描述: 根据查询条件统计满足条件的数据条数
     *
     * @param query 查询对象
     * @return Integer
     * @author chongw
     * @since 2021/07/05 09:17
     */
    Integer countRulePageByEventQuery(EngineerRuleCustomQuery query);

    /**
     * 按条件查询数据 支持分页
     * @param query 查询对象
     * @return java.util.List<com.zmn.brs.model.bo.rule.OrderRuleBO>
     * @throws
     * @author chongw
     * @since 2021/07/05 09:17
     */
    List<CustomRuleBO> listPageRuleByEventQuery(EngineerRuleCustomQuery query);

    /**
     * 按条件查询数据 不支持分页
     * @param query 查询对象
     * @return java.util.List<com.zmn.brs.model.bo.rule.OrderRuleBO>
     * @throws
     * @author chongw
     * @since 2021/07/08 09:17
     */
    List<CustomRuleBO> listRuleByEventQuery(EngineerRuleCustomQuery query);

    /**
     * 校验规则是否存在
     * @param query
     * @return
     */
    Integer countRuleExistByQuery(EngineerRuleCustomQuery query);

}
